Malicious software (i.e., ‘malware’), such as viruses, spyware and rootkits, has become increasing difficult for computer systems to detect and protect against. This is in part due to the evolving complexity and form of malware. Obfuscation techniques by malware creators often change the form and function of a single piece of malware, rendering straightforward virus detection techniques (such as file signature or code detection) obsolete.